﻿//========================================
// All rights reserved (C) 2017-2100
// CLR 版本：	4.0.30319.42000
// 命名空间:	SFJDService.SocketHandle
// 文 件 名：	PH01SynGotNetMax
// 作    者：	WooG
// 联系方式：	wooglle@163.com
// 创建时间：	2018/3/12 22:53:41
//========================================
using System.Net.Sockets;
using Common;
using Network.UpdateData;

namespace SFJDService.SocketHandle
{
    public class PH01SynGotNetMax : PacketHandle
    {
        public PH01SynGotNetMax(Socket socket, Packet packet) : base(socket, packet)
        {
        }

        protected override void Handle()
        {
            try
            {
                ClassData data = new ClassData();
                data.DecodingFromString(Message);
                if (Runtime.xmlData.GetLastID() >= data.ID)//如果本地最大值大于网络数据
                {
                    if(data.User == Runtime.thisUser.UserGuid | Runtime.thisUser.IsAdmin)
                    {
                        ClassData localData = Runtime.xmlData.GetDataByID(data.TimeArrange.Year.ToString(), data.ID);
                        if (localData.Equals(data))//本地数据与网络数据一致
                        {
                            return;
                        }
                        else//进行纠错，把错误数据保存在本地
                        {
                            ClassData dataTemp = Runtime.xmlData.GetDataByID(data.TimeArrange.Year.ToString(), data.ID);
                            Runtime.xmlData.AddData(data);
                            Runtime.xmlTemp.AddDataErr(dataTemp);
                        }
                    }
                }
                else//如果本地缺少此数据
                {
                    Runtime.xmlData.AddData(data);
                }
            }
            catch
            {
                
            }
        }
    }
}
